/**
 * 格式化日期时间
 * @param {string|Date|Array} date 日期时间
 * @param {string} format 格式化模板，默认 YYYY-MM-DD HH:mm:ss
 * @returns {string} 格式化后的日期时间字符串
 */
export function formatDateTime(date, format = 'YYYY-MM-DD HH:mm:ss') {
  if (!date) return ''
  
  let d;
  
  // 处理后端返回的数组格式日期 [2025, 6, 25, 19, 14, 56]
  if (Array.isArray(date)) {
    // 数组格式: [year, month, day, hour, minute, second]
    const [year, month, day, hours = 0, minutes = 0, seconds = 0] = date;
    d = new Date(year, month - 1, day, hours, minutes, seconds);
  } else {
    d = new Date(date);
  }
  
  if (isNaN(d.getTime())) {
    console.warn('Invalid date format:', date);
    return '';
  }
  
  const year = d.getFullYear()
  const month = String(d.getMonth() + 1).padStart(2, '0')
  const day = String(d.getDate()).padStart(2, '0')
  const hours = String(d.getHours()).padStart(2, '0')
  const minutes = String(d.getMinutes()).padStart(2, '0')
  const seconds = String(d.getSeconds()).padStart(2, '0')
  
  return format
    .replace('YYYY', year)
    .replace('MM', month)
    .replace('DD', day)
    .replace('HH', hours)
    .replace('mm', minutes)
    .replace('ss', seconds)
}

/**
 * 格式化金额
 * @param {number} amount 金额
 * @param {number} decimals 小数位数，默认2位
 * @returns {string} 格式化后的金额字符串
 */
export function formatAmount(amount, decimals = 2) {
  if (amount === undefined || amount === null) return '0.00'
  
  return Number(amount).toFixed(decimals)
}

/**
 * 格式化采购状态
 * @param {string} status 状态代码
 * @returns {string} 状态文本
 */
export function formatPurchaseStatus(status) {
  const statusMap = {
    'PENDING': '待审批',
    'APPROVED': '已通过',
    'REJECTED': '已拒绝'
  }
  
  return statusMap[status] || status
}

/**
 * 获取状态文本 - 与 formatPurchaseStatus 功能相同，供组件使用
 * @param {string} status 状态代码
 * @returns {string} 状态文本
 */
export function getStatusText(status) {
  const statusMap = {
    'PENDING': '待审批',
    'APPROVED': '已通过',
    'REJECTED': '已拒绝'
  }
  
  return statusMap[status] || '未知'
}

/**
 * 获取采购状态对应的类名
 * @param {string} status 状态代码
 * @returns {string} 类名
 */
export function getPurchaseStatusClass(status) {
  const classMap = {
    'PENDING': 'status-pending',
    'APPROVED': 'status-approved',
    'REJECTED': 'status-rejected'
  }
  
  return classMap[status] || ''
}

/**
 * 获取采购状态对应的Element Plus标签类型
 * @param {string} status 状态代码
 * @returns {string} 标签类型
 */
export function getPurchaseStatusType(status) {
  const typeMap = {
    'PENDING': 'warning',
    'APPROVED': 'success',
    'REJECTED': 'danger'
  }
  
  return typeMap[status] || 'info'
} 